Energy conscious mobile device redundancy and recovery

ABSTRACT

A tool for redundancy and recovery for a mobile device. The tool probes for one or more available resources on the mobile device, wherein probing for the one or more available resources includes gathering diagnostic information related to the one or more available resources. The tool determines a device functionality for the mobile device, wherein the device functionality is an energy conscious recovery plan including one or more features available on the mobile device. The tool scavenges for at least one resource to support the device functionality for the mobile device. The tool restores the device functionality for the mobile device, wherein restoring the device functionality includes utilizing the at least one resource and one or more energy conscious techniques.

BACKGROUND OF THE INVENTION

The present invention relates generally to telecommunications, and moreparticularly to energy conscious redundancy and disaster recoverytechniques for mobile devices.

Mobile devices are capable of performing a diverse set of functions andproviding a wide range of behaviors for various purposes, however, thesefunctions can become compromised when the operating system (OS) of themobile device locks up due to, for example, a malicious applicationinstalled on the mobile device, a software failure, or a hardwarefailure, etc. Users of mobile devices are presented with limitedremedies in failure situations, and as such, there is potential for aloss of information stored on the mobile device. Additionally, havingthe mobile device become unavailable at an inopportune time, such asduring an emergency, can cause other serious problems.

SUMMARY

Aspects of an embodiment of the present invention disclose a method,system, and computer program product for redundancy and recovery for amobile device. The method includes probing, by one or more computerprocessors, for one or more available resources on the mobile device,wherein probing for the one or more available resources includesgathering diagnostic information related to the one or more availableresources. The method includes determining, by one or more computerprocessors, a device functionality for the mobile device, wherein thedevice functionality is an energy conscious recovery plan including oneor more features available on the mobile device. The method includesscavenging, by one or more computer processors, for at least oneresource to support the device functionality for the mobile device. Themethod includes restoring, by one or more computer processors, thedevice functionality for the mobile device, wherein restoring the devicefunctionality includes utilizing the at least one resource and one ormore energy conscious techniques.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a functional block diagram illustrating a dataprocessing environment, generally designated 100, in accordance with anembodiment of the present invention.

FIG. 2 depicts a flowchart of the operational steps of a redundantrecovery module, generally designated 200, for energy consciousredundancy and recovery for a mobile device, in accordance with anembodiment of the present invention.

FIG. 3 illustrates a block diagram depicting components of a dataprocessing system (such as the main module of FIG. 1), generallydesignated 300, in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

Implementation of such embodiments may take a variety of forms, andexemplary implementation details are discussed subsequently withreference to the Figures.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating a dataprocessing environment, generally designated 100, in accordance with anembodiment of the present invention. FIG. 1 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be madeby those skilled in the art without departing from the scope of theinvention as recited by the claims. Data processing environment 100includes a mobile device 102.

In the exemplary embodiment, mobile device 102 may be, for example, adesktop computer, a laptop computer, a tablet computer, a personaldigital assistant (PDA), a smart phone, a thin client, or any otherelectronic device or computing system capable of receiving, processing,storing, and sending data. In one embodiment, mobile device 102 may beany suitable type of mobile device capable of running mobileapplications, including a smart phone, tablet, slate, or any type ofdevice that runs a mobile operating system. Mobile device 102 includes amain module 104 and a redundant recovery module (RRM) 106.

In an alternate embodiment, mobile device 102 may be any wearableelectronic device, including wearable electronic devices affixed toeyeglasses and sunglasses, helmets, wristwatches, clothing, wigs, andthe like, capable of receiving, processing, storing, and sending data.

In the exemplary embodiment, main module 104 is a conventional mobiledevice module providing device functionality, such as sending,receiving, and processing data, through the use of one or moreintegrated devices, including, but not limited to, processor complex112, battery 116, memory 113, and display controller 120. In theexemplary embodiment, processor complex 112 is a conventional processorincluding electronic circuitry that carries out instructions provided byan operating system, a program, or a mobile application. In oneembodiment, processor complex 112 fetches instructions from memory 113to decode and execute the instructions. In the exemplary embodiment,battery 116 is a conventional portable rechargeable battery useful inmobile device applications, for example, lithium-ion and nickel-cadmium,nickel-zinc, and nickel metal hydride. In the exemplary embodiment,memory 113 is a conventional memory device for storing instructions,programs, and data on a temporary or permanent basis. In the exemplaryembodiment, display controller 120 is a conventional device used tocontrol a display (not shown) on a mobile device, such as mobile device102.

In the exemplary embodiment, RRM 106 is a combination of software andfirmware integrated with a mobile device, such as mobile device 102, forproviding energy conscious redundancy and disaster recovery for themobile device. In the exemplary embodiment, RRM 106 resides in adedicated physical core (i.e., separate from a main module of the mobiledevice, such as main module 104 of mobile device 102), and is isolatedfrom the main module by electrical isolation buffers, such as electricalisolation buffers 114 in main module 104 of mobile device 102. In oneembodiment, RRM 106 can be isolated from environmental hazards throughthe use of specific packaging, for example, thermal isolation,waterproofing, and shock proofing to ensure RRM 106 remains available toprovide redundancy and recovery to the mobile device. In the exemplaryembodiment, RRM 106 diagnoses problems on the main module usingconventional reliability, availability, and serviceability (RAS)techniques. In the exemplary embodiment, RRM 106 maintains dual portedaccess to a memory in the main module of the mobile device, such asmemory 113 in main module 104 of mobile device 102, to facilitatediagnosis. In the exemplary embodiment, RRM 106 can be activated (i.e.,enabled) by a physical reset switch located on mobile device 102 (notshown). In another embodiment, RRM 106 may be activated automaticallywhen a failure event, for example, a software failure, an electricalfailure, an operating system hang up, or an environmental hazard isdetected.

In the exemplary embodiment, RRM 106 restores functionality on the mainmodule in an energy conscious manner, such that redundancy and recoveryis engaged proportionally to a residual energy (i.e., battery charge).In the exemplary embodiment, RRM 106 determines device functionality forthe mobile device post failure, and an energy draw necessary to providethe device functionality. RRM 106 compares the energy draw to a residualcharge available, and prioritizes device functionality to be restored inan energy conscious manner, such that, for example, emergency phoneservices, GPS tracking beacons, and pinging, etc. are the first devicefunctionalities gradually restored.

RRM 106 includes nanoprocessor complex 108 for providing surrogacyfunctionality for a processor complex on the main module, such asprocessor complex 112 of main module 104, in the event of a catastrophicfailure of the processor complex. In the exemplary embodiment,nanoprocessor complex 108 is interconnected with one or more devices inmain module 104 through a hardwired shadow plane. In the exemplaryembodiment, the hardwired shadow plane is a circuit layer allowing RRM106 to probe, monitor, and determine the health of every module on amain processor complex, such as main module 104. In some embodiments,the hardwired shadow plane may provide the capability to send signals totrigger or switch main processor complex modules to various states. Inthe exemplary embodiment, nanoprocessor complex 108 provides thecapability to utilize the one or more devices in main module 104, suchas processor complex 112, battery 116, memory 113, and displaycontroller 120 to restore functionality in an energy conscious manner.

RRM 106 includes battery 110 for providing backup power for redundancyand recovery functionality. In the exemplary embodiment, battery 110 canbe any conventional mobile device battery, for example, a rechargeablelithium ion battery. In some embodiments, battery 110 may be a solarpowered battery, or any other energy conscious, self-restoring battery.In one embodiment, RRM 106 can use battery 110 to power redundancy andrecovery functionality, including diagnostics, surrogacy, probing, andrestoring device functionality. In the exemplary embodiment, in aneffort to provide energy conscious redundancy and recovery, RRM 106scavenges resources on the main module of the mobile device to drawcharge from one or more devices, such as battery 116, to provide powerfor redundancy and recovery functionality, prior to operating on backuppower provided by battery 110.

FIG. 2 depicts a flowchart of the operational steps of a redundantrecovery module, such as RRM 106, generally designated 200, for energyconscious redundancy and recovery for a mobile device, in accordancewith an embodiment of the present invention.

RRM 106 activates recovery (202). In the exemplary embodiment, RRM 106activates recovery functionality in response to enablement of a phonereset switch on a mobile device (i.e., a phone reset switch being turnedon by a user of the mobile device). For example, a user of a mobiledevice, such as mobile device 102, may begin experiencing an operatingsystem (OS) hang up condition (e.g., a boot up malfunction) while tryingto power up the mobile device. The user, in response to unsuccessfullybeing able to power up the mobile device, may turn on the phone resetswitch of the mobile device, notifying RRM 106 to activate recoveryfunctionality. In some other embodiments, RRM 106 may activate recoveryfunctionality in response to a trigger condition, such as a change in anenvironmental condition (e.g., a change in temperature above or below athreshold temperature), or an emergency activation (e.g., a heavy shockor impact to a mobile device). For example, if a user of a mobile deviceis in an automobile accident, RRM 106 may activate recoveryfunctionality in response to an impact associated with the accident.

RRM 106 diagnoses software functionality (204). In the exemplaryembodiment, RRM 106 diagnoses software functionality by searching one ormore devices on the mobile device for malfunctions. In the exemplaryembodiment, RRM 106 searches one or more devices on the mobile device,including, without limitation, one or more registers in a processorcomplex, such as processor complex 112, a non-volatile memory, one ormore traces of a last invocation, and a plurality of software traces anddumps. In the exemplary embodiment, RRM 106 searches for malfunctions byprobing the one or more devices via a hardwired shadow plane, whereinthe probing utilizes energy conscious RAS techniques. In someembodiments, RRM 106 employs a probing timeout, such that RRM 106 probesfor malfunctions in software functionality proportional to a chargeremaining on a battery of the mobile device, such as battery 116 ofmobile device 102. For example, RRM 106 may perform a cursory diagnosisof malfunctions where a residual charge on a battery of the mobiledevice is low, and alternatively, perform a thorough diagnosis ofmalfunctions where the residual change on a battery of the mobile deviceis high.

RRM 106 diagnoses electrical functionality (206). In the exemplaryembodiment RRM 106 diagnoses electrical functionality by searching oneor more devices on the mobile device for malfunctions. In the exemplaryembodiment, RRM 106 searches one or more devices on the mobile device,including, without limitation, one or more registers in a processorcomplex, such as processor complex 112, a battery, such as battery 116,memory, such as memory 113, and a display controller, such as displaycontroller 120. In the exemplary embodiment, RRM 106 searches forelectrical malfunctions, such as overheating, electrical shorts, etc.,by probing the one or more devices via a hardwired shadow plane anddiagnostic wiring, wherein the probing utilizes energy conscious RAStechniques. In some embodiments, RRM 106 employs a probing timeout, suchthat RRM 106 probes for malfunctions in electrical functionalityproportional to a charge remaining on a battery of the mobile device,such as battery 116 of mobile device 102. For example, RRM 106 mayperform a cursory diagnosis of malfunctions where a residual charge on abattery of the mobile device is low, and alternatively, perform athorough diagnosis of malfunctions where the residual change on abattery of the mobile device is high.

RRM 106 probes resources (208). In the exemplary embodiment, RRM 106probes resources available on a mobile device, such as mobile device102, gathering diagnostic information related to one or more availableresources, such as battery 116 and processor complex 112, fordetermining a state of the entire system, determining resourcesavailable for scavenging, and a total energy available to powerredundancy and recovery functionality, etc.

RRM 106 creates a list of usable devices (210). In the exemplaryembodiment, RRM 106 creates a list of usable devices (i.e., components)of a mobile device based, at least in part, on a diagnosis of softwarefunctionality, a diagnosis of electrical functionality, and a probing ofresources available on the mobile device, such as mobile device 102. RRM106 creates a list of usable components by inventorying one or morecomponents, and, from these inventoried components, excludes thosecomponents experiencing malfunctions.

RRM 106 determines a device functionality (212). In the exemplaryembodiment, RRM 106 determines a device functionality for a mobiledevice, such as mobile device 102, wherein the device functionality is arecovery plan for restoring one or more features of the mobile device,such as making an emergency phone call, activating a global positioningsystem, connecting to a wireless network, and broadcasting a beacon,etc., that are made available to a user of the mobile device by one ormore usable devices from the list of usable devices. In someembodiments, RRM 106 determines a device functionality based, at leastin part, on energy conscious techniques. For example, RRM 106 mayconfigure a device functionality that restores only an emergency phonecall option and a broadcast beacon option, based, at least in part, on apredicted low energy draw for the restored features. In another example,where a display on a mobile device is malfunctioning or damaged,rendering it unusable, RRM 106 may determine a device functionality thatenables voice commands in order to initiate an emergency call.

RRM 106 determines an energy draw for the device functionality (214). Inthe exemplary embodiment, RRM 106 determines an energy draw for thedevice functionality, wherein the energy draw is a predictive value ofhow much energy is required to restore the one or more featuresavailable in the device functionality. For example, RRM 106 maydetermine an energy draw required to restore the one or more featuresavailable in the device functionality, such as an emergency phone call,enable a GPS location, and connect to a wireless network, as low tomoderate.

RRM 106 scavenges resources to support the device functionality from amain module (216). In the exemplary embodiment, RRM 106 scavengesresources from a main module of a mobile device, such as main module 104of mobile device 102 to provide sufficient charge (i.e., energy) tosatisfy an energy draw required to restore one or more featuresavailable in the device functionality. For example, where an energy drawrequired to restore one or more features available in the devicefunctionality is low to moderate, RRM 106 may scavenge resources, suchas siphon charge from a battery, a processor complex, or a wiringharness on the main module of the mobile device, to accumulatesufficient energy to restore and power one or more features available inthe device functionality.

RRM 106 restores the device functionality (218). In the exemplaryembodiment, responsive to scavenging resources to provide sufficientcharge to satisfy an energy draw required to restore and power one ormore features, RRM 106 restores the device functionality in an energyconscious manner by bringing up the system gradually, based, at least inpart, on remaining battery power, expected battery life, scavengedresources, and any external conditions affecting energy consumption(e.g., extreme cold), etc.

FIG. 3 is a block diagram, generally designated 300, depictingcomponents of a data processing system (such as mobile device 106 ofdata processing environment 100), in accordance with an embodiment ofthe present invention. It should be appreciated that FIG. 3 providesonly an illustration of one implementation and does not imply anylimitations with regard to the environments in that differentembodiments can be implemented. Many modifications to the depictedenvironment can be made.

In the illustrative embodiment, mobile device 106 in data processingenvironment 100 is shown in the form of a general-purpose computingdevice. The components of computer system 310 can include, but are notlimited to, one or more processors or processing unit 314, memory 324,and bus 316 that couples various system components including memory 324to processing unit(s) 314.

Bus 316 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnect (PCI) bus.

Computer system 310 typically includes a variety of computer systemreadable media. Such media can be any available media that is accessibleby computer system 310, and it includes both volatile and non-volatilemedia, removable and non-removable media.

Memory 324 can include computer system readable media in the form ofvolatile memory, such as random access memory (RAM) 326 and/or cachememory 328. Computer system 310 can further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 330 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM, or other optical media can be provided.In such instances, each can be connected to bus 316 by one or more datamedia interfaces. As will be further depicted and described below,memory 324 can include at least one computer program product having aset (e.g., at least one) of program modules that are configured to carryout the functions of embodiments of the invention.

Program/utility 332, having one or more sets of program modules 334, canbe stored in memory 324 by way of example, and not limitation, as wellas an operating system, one or more application programs, other programmodules, and program data. Each of the operating systems, one or moreapplication programs, other program modules, and program data, or somecombination thereof, can include an implementation of a networkingenvironment. Program modules 334 generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein. Computer system 310 can also communicate with one or moreexternal devices 312 such as a keyboard, a pointing device, a display322, etc., or one or more devices that enable a user to interact withcomputer system 310 and any devices (e.g., network card, modem, etc.)that enable computer system 310 to communicate with one or more othercomputing devices. Such communication can occur via Input/Output (I/O)interface(s) 320. Still yet, computer system 310 can communicate withone or more networks such as a local area network (LAN), a general widearea network (WAN), and/or a public network (e.g., the Internet) vianetwork adapter 318. As depicted, network adapter 318 communicates withthe other components of computer system 310 via bus 316. It should beunderstood that although not shown, other hardware and softwarecomponents, such as microcode, device drivers, redundant processingunits, external disk drive arrays, RAID systems, tape drives, and dataarchival storage systems can be used in conjunction with computer system310.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be any tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium can be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network can comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention can be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions can execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer can be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection can be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) can execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions can be provided to aprocessor of a general purpose computer, a special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionscan also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions can also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams can represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block can occur out of theorder noted in the Figures. For example, two blocks shown in successioncan, in fact, be executed substantially concurrently, or the blocks cansometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Itshould be appreciated that any particular nomenclature herein is usedmerely for convenience and thus, the invention should not be limited touse solely in any specific function identified and/or implied by suchnomenclature. Furthermore, as used herein, the singular forms of “a”,“an”, and “the” are intended to include the plural forms as well, unlessthe context clearly indicates otherwise.

What is claimed is:
 1. A method for redundancy and recovery for a mobiledevice, the method comprising: probing, by one or more computerprocessors, for one or more available resources on the mobile device,wherein probing for the one or more available resources includesgathering diagnostic information related to the one or more availableresources; determining, by one or more computer processors, a devicefunctionality for the mobile device, wherein the device functionality isan energy conscious recovery plan including one or more featuresavailable on the mobile device; scavenging, by one or more computerprocessors, for at least one resource to support the devicefunctionality for the mobile device; and restoring, by one or morecomputer processors, the device functionality for the mobile device,wherein restoring the device functionality includes utilizing the atleast one resource and one or more energy conscious techniques.
 2. Themethod of claim 1, wherein probing for one or more available resourceson the mobile device, further comprises: diagnosing, by one or morecomputer processors, a software functionality for the mobile device,wherein diagnosing the software functionality includes utilizing one ormore energy conscious reliability, availability, and serviceability(RAS) techniques; and diagnosing, by one or more computer processors, anelectrical functionality for the mobile device, wherein diagnosing theelectrical functionality includes utilizing one or more energy consciousRAS techniques.
 3. The method of claim 1, further comprises: searching,by one or more computer processors, for one or more malfunctions in oneor more devices via a hardwired shadow plane, wherein searching includesutilizing one or more energy conscious RAS techniques.
 4. The method ofclaim 1 further comprises: activating, by one or more computerprocessors, a recovery functionality responsive to enablement of a phonereset switch on the mobile device.
 5. The method of claim 1, whereindetermining a device functionality for the mobile device, furthercomprises: creating, by one or more computer processors, a list ofusable devices based, at least in part, on one or more of: a diagnosisof software functionality; a diagnosis of electrical functionality; anda probing of resources available on a mobile device.
 6. The method ofclaim 1, wherein scavenging for at least one resource to support thedevice functionality for the mobile device, further comprises:determining, by one or more computer processors, an energy draw for thedevice functionality, wherein the energy draw is a predictive value ofhow much energy is required to restore the at least one featureavailable in the device functionality.
 7. The method of claim 6, whereindetermining an energy draw for the device functionality, furthercomprises: inventorying, by one or more computer processors, one or morecomponents of the mobile device; and excluding, by one or more computerprocessors, the one or more components of the mobile device experiencinga malfunction.
 8. The method of claim 1, wherein determining a devicefunctionality for the mobile device, further comprises: determining, byone or more computer processors, one or more features to include in thedevice functionality based, at least in part, on one or more energyconscious techniques, the one or more features including one or more of:an emergency phone call; a global positioning system; and a beaconbroadcast.